S

SideButton Marketing Website Knowledge Module

SideButton Marketing Website Portal — Agents — Knowledge Module Reference

SideButton Marketing Website knowledge module — UI selectors, data model, and page states documenting Portal — Agents.

Available free v1.0.3 Browser
$ sidebutton install SideButton Marketing Website
Download ZIP
Path
/portal/agents
Verified
2026-03-24
Confidence
97%
Role playbooks
0
Pack
SideButton Marketing Website
Domain
sidebutton.com

What This Is

Agent Fleet management page -- shows all connected cloud VM agents with live health metrics, screenshots, activity status, and action buttons. Each agent row displays a live screenshot thumbnail, avatar icon, display name (or hostname), IP address, role badges (SE/QA/SD/PM), shared/share-count badge, system health (CPU, MEM, LOAD, DISK, SWAP) with color-coded warnings, software version badges with drift detection, activity/connectivity status badges (BUSY/IDLE + Online/Offline/Error), running/queued/waiting job links, last-seen timestamp, and action buttons to run jobs, view queue, or refresh data. The page header shows total agent count and online count (error count appended only when errors exist). Browser tab title: "Agents - SideButton Fleet".

URL Patterns

PatternDescription
/portal/agentsAgent fleet overview

Page Structure

+--[Sidebar]--+--[Main Content]--------------------------------------------+
|  Chat       |  H1: "Agent Fleet"        [Share] [Run Workflow] buttons     |
|  Agents *   |  "11 agents · 10 online · 2 error"  (error part conditional) |
|  Jobs       |                                                              |
|  Queue      |  [Table Header: AGENT | HEALTH | ACTIVITY | SEEN]           |
|  Automations|                                                              |
|  Workflows  |  [Agent Row]                                                 |
|  Settings   |    [Screenshot thumb] [Avatar] DisplayName  SHARED  IP       |
|             |                       [SE][QA][SD][PM] [MAX]                 |
|             |                       BUSY | Online | Just now               |
|             |                       Running · workflow — ticket             |
|             |                       Queued · workflow  +N more              |
|             |    CPU% MEM% LOAD% DISK% SWAP%                              |
|             |    [CLAUDE CODE 2.x] [NODE 22.x] [NPM 10.x] [SB 1.x]       |
|             |    [Queue N] [Run Job] [Refresh]                             |
|             |                                                              |
+-------------+--------------------------------------------------------------+

Key Elements

ElementSelector / RefNotes
Page headingheading "Agent Fleet"H1 at top of main content
Agent/online/error countBelow heading"N agents · N online" summary text; error count ("· N error") appended only when agents have error status. With 0 agents shows "0 agents · 0 online"
Share buttonbutton "Share"Blue outlined button, top-right, copies page link to clipboard
Run Workflow buttonbutton "Run Workflow"Orange button, top-right, opens workflow runner modal
Table headersColumn labelsAGENT, HEALTH, ACTIVITY, SEEN
Agent screenshotbutton "Click to view full screenshot" > img "{name} screenshot"Clickable thumbnail (w-56 h-32) of agent desktop, opens full-screen viewer overlay
Screenshot placeholder.screenshot-placeholderMonitor icon placeholder when no screenshot available
Agent avatarimg "{agent-name}"Small icon/avatar in rounded-lg container next to name
Agent display nameBold text next to avatarShows display_name if set, otherwise name (hostname). Click copies agent name
Agent IPGrey mono texte.g. "46.224.17.8". Click copies IP to clipboard
SHARED badgeSky/blue badgebg-sky-400/10 text-sky-400 — shown on agents shared from another account
Share count badgeSky badge with share iconShows count of accounts this agent is shared with (only on owned agents). Click opens share modal
Role badgesColored pillsSE (green), QA (blue), SD (purple), PM (orange) — shows assigned capabilities. OPS role is filtered out from display
Effort badgeOrange badgee.g. "MAX" — shown when agent has effort level set
Copy agent namebutton "Copy agent name"Copies hostname to clipboard, shows "copied!" flash
Copy IPbutton "Copy IP"Copies IP to clipboard
CPU metricPercentage textColor-coded: green <50%, amber 50-80%, red >80%
Memory metricPercentage text"MEM N%" — tooltip shows "Memory: N/N MB"
Load metricPercentage text"LOAD N%" — calculated as (load_1m / cpu_cores) * 100
Disk metricPercentage text"DISK N%" — color-coded by usage
Swap metricPercentage text"SWAP N%" — tooltip shows "Swap: N/N MB"
Software versionsBadge row below metricse.g. "CLAUDE CODE 2.1.79", "NODE 22.22.1", "NPM 10.9.4", "SB 1.8.12" — outdated versions highlighted with warning icon
BUSY badgeStatus areaAmber bg-amber-400/10 text-amber-400 badge when agent is running a job
IDLE badgeStatus areaGrey bg-slate-800 text-slate-500 badge when agent is connected but not running a job
Online indicatorStatusBadgeGreen dot + "Online" text
Offline indicatorStatusBadgeGrey dot + "Offline" text
Error indicatorStatusBadgeRed dot + "Error" text — shown when agent.status === 'error'
Last seenStatus areaRelative timestamp: "Just now", "Nm ago", "Nh ago", "Nd ago", or "Never"
Running job linkActivity area"Running · {ticket_key or workflow_name}" with blue badge, pulsing dot — links to job
Waiting job linkActivity area"Waiting · {ticket_key or workflow_name}" with amber badge — links to job
Queued item labelsActivity area"Queued · {workflow}" labels for pending queue items
Overflow indicatorActivity area"+N more" when multiple items queued beyond first 2 shown
Queue linklink "Queue" or link "Queue N"Links to /portal/queue?agent={id}, badge shows queued item count
Run Job buttonbutton "Run Job"Orange outlined button on agent row; disabled when agent is offline
Refresh buttonbutton "Refresh agent data"Circular arrow icon, refreshes agent metrics and screenshot

Data Model

Agent

FieldTypeDescription
idnumberAgent ID (auto-increment)
namestringAgent hostname (e.g. "dev-agent-1", "SideButton Main")
display_namestring (nullable)Optional user-friendly name shown in UI instead of hostname
ipstringAgent IP address
dns_namestringDNS hostname
user_idnumberOwner user ID
statusstring"online" / "offline" / "error"
capabilitiesstring (JSON)JSON array of roles, e.g. ["se", "qa", "sd", "pm"]
effort_levelstring (nullable)Default effort level: "max" / "high" / "medium"
entry_pathsstring (JSON)JSON array of EntryPath objects with path, active, mcp_json fields
last_seen_atstring (datetime)Last heartbeat timestamp — offline if >5 min ago
avatar_urlstring (nullable)URL to agent avatar image
dependency_versionsstring (JSON){ claude_code, node, npm, sidebutton } version strings
stable_sincestring (datetime, nullable)When agent became stable (for uptime tracking)

Agent Snapshot (health metrics)

FieldTypeDescription
cpu_pctnumberCPU usage percentage
mem_used_mbnumberMemory used in MB
mem_total_mbnumberTotal memory in MB
cpu_coresnumberNumber of CPU cores (for load normalization)
load_1mnumber1-minute load average
disk_pctnumberDisk usage percentage
swap_used_mbnumberSwap used in MB
swap_total_mbnumberTotal swap in MB
screenshot_pathstringPath to latest desktop screenshot file

Shared Agent State

FieldTypeDescription
isSharedbooleanAgent owned by a different account (shows SHARED badge)
shareCountnumberNumber of accounts this agent is shared with (shows share count badge on owned agents)
agentSettingsobjectPer-account overrides: enabled_roles, effort_level, enabled_entry_paths

States & Variations

StateTriggerVisual Indicator
Agent online + idleConnected, no job runningGreen "Online" dot, grey "IDLE" badge
Agent online + busyRunning a jobAmber "BUSY" badge + green "Online" dot, running/queued job links
Agent online + waitingJob in waiting state (e.g. gate approval)Amber "Waiting" badge + green "Online" dot
Agent offlineDisconnected (>5min heartbeat or status='offline')Grey "Offline" dot, Run Job button disabled, row dimmed
Agent errorstatus='error'Red "Error" dot + "IDLE" badge, agent appears in error count
No agentsNo agents registered"No agents registered yet" heading + "Agents appear here after their first heartbeat" hint text + robot icon
No screenshotNo snapshot received yetPlaceholder monitor icon instead of thumbnail
Screenshot availableSnapshot receivedThumbnail image in clickable button
Shared agentAgent owned by different accountSky "SHARED" badge next to name
Owned + sharedAgent shared with other accountsShare count badge (e.g. "2") with share icon, clickable
Queued itemsItems queued for agent"Queued · {workflow}" labels, "+N more" overflow, Queue link shows count badge
Software versions visibleAgent reports version infoVersion badge row: CLAUDE CODE, NODE, NPM, SB
Version driftAgent version < fleet maxWarning triangle icon next to outdated version badge
Metric warningValue >= warn thresholdAmber text color (CPU/Load >=50%, Mem/Disk >=70%, Swap >=30%)
Metric dangerValue >= danger thresholdRed text color (CPU/Load >=80%, Mem/Disk >=85%, Swap >=60%)
Run Workflow modal: no agents0 agents registeredOnly Auto pick button shown + "No agents with {role} role" hint; no agent grid, no "All N agents", no Entry Path dropdown
Run Workflow modal: no role matchAgents exist but none have workflow's role"No agents with {role} role" hint next to Auto pick; matching agents absent from grid

Common Tasks

1. View agent health

  1. Navigate to /portal/agents
  2. Check CPU, MEM, LOAD, DISK, SWAP metrics for each agent — colors indicate severity

2. Run a workflow on any agent

  1. Click "Run Workflow" (top-right orange button)
  2. Select workflow from left panel (grouped by role: OPS, SE, QA, SD, PM)
  3. Fill required input fields (e.g. Ticket Url for SE/QA workflows)
  4. Optionally add a Hint, change Entry Path, or adjust Effort Level
  5. Select agent target: "Auto pick", "All N agents", or a specific agent
  6. Click "Run"

3. Run a job on a specific agent

  1. Click "Run Job" on the target agent row
  2. Modal opens with that agent pre-selected (only that agent shown, no Auto pick)
  3. Select workflow, fill params, click "Run"

4. View agent screenshot

  1. Click the screenshot thumbnail button on an agent row
  2. Full-screen overlay opens with img "Agent screenshot", agent name below
  3. Close with button "Close" (top-right) or press Escape

5. Copy agent connection info

  1. Click agent display name → copies hostname to clipboard (shows "copied!" flash)
  2. Click IP address → copies IP to clipboard

6. View agent queue

  1. Click "Queue" link on agent row → navigates to /portal/queue?agent={id}

7. Share fleet view

  1. Click "Share" button → copies page link to clipboard

Run Workflow Modal

Both "Run Workflow" (top-right) and "Run Job" (per-agent) open the same two-panel modal dialog.

Left Panel: Workflow Picker

Workflows listed by role group: OPS, SE, QA, SD, PM. Clicking a workflow selects it and updates the right panel. Selected workflow has highlighted background + left border accent.

Right Panel: Configuration

ElementNotes
Workflow titleFull title of selected workflow (e.g. "SE Agent: Implement Fix + PR")
Workflow descriptionShort text below title
Dynamic input fieldsShown when workflow has input params — e.g. "Ticket Url" with "Jira ticket URL" helper text
Hint (optional)Textarea, label "Optional extra instructions for the agent"
RUN ON AGENT"Auto pick" (lightning icon, selected by default). "All N agents" button and individual agent buttons only shown when agents exist. When no agents match the workflow role, shows "No agents with {role} role" hint text next to Auto pick
Agent buttonsGrid of agent name buttons with dot indicators: green = online, amber = busy, grey = offline (disabled). Hidden when 0 agents registered
ENTRY PATHDropdown/combobox with "Agent default" as default option. Hidden when no agents are available
EFFORT LEVELToggle buttons: Max / High / Medium (Medium selected by default, orange highlight)
Run buttonOrange, full-width, bottom of panel. Disabled when required fields are empty or no agents available
Close buttonX icon, top-right corner

Workflow List (current)

GroupWorkflows
OPSOps: Pull All Repos
SESE Agent: Apply Review Feedback, SE Agent: Root Cause Analysis, SE Agent: RCA + Fix + PR, SE Agent: Implement Fix + PR
QAQA: Re-review PR After Fixes, QA: Test Live Site (New Ticket), QA: Regression Test (Live Site), QA: Review PR Fix
SDSD Agent: Fill Skill Module
PMPM Agent: Drive Ticket, PM Agent: Sprint Lifecycle

"Run Job" vs "Run Workflow" Differences

AspectRun Workflow (top-right)Run Job (per-agent)
Agent selectionFull grid: Auto pick + All N agents + individual agentsOnly the target agent shown (pre-selected)
Default selectionAuto pickThe clicked agent

Screenshot Viewer

Full-screen dark overlay that opens when clicking an agent's screenshot thumbnail.

ElementSelector / RefNotes
Close buttonbutton "Close"Top-right corner, text button
Screenshot imageimg "Agent screenshot"Full-size desktop screenshot
Agent nameText below screenshotAgent hostname label

Close by clicking the Close button or pressing Escape.

Tips

  • Agent connectivity is derived from heartbeat: offline if last_seen_at > 5 minutes ago, or status explicitly set to 'offline' (e.g. during reboot)
  • Agent metrics refresh periodically via fleet-status polling — values change on every snapshot
  • The screenshot thumbnail is a live capture of the agent's desktop (XFCE via RDP), served from /api/agents/screenshot/{name}?t={timestamp}
  • "BUSY" badge appears when the agent is currently executing a job; "IDLE" when connected but not running
  • "Error" status is distinct from Offline — agent may still be reachable but reporting errors
  • Offline agents have the "Run Job" button disabled
  • The Run Workflow modal dynamically renders input fields based on the selected workflow's required parameters
  • "All N agents" button in the modal broadcasts the job to every online agent
  • Software version badges show drift detection: outdated versions (below fleet max) are highlighted with a warning icon
  • Queue link badge count shows number of items queued for that agent
  • Agents are sorted by name with numeric collation (agent-1, agent-2, ..., agent-10)
  • For shared agents, per-account settings can override effort_level and filter entry_paths
  • OPS role is filtered out from capability badge display

Gotchas

  • Live data: Metrics are live and change frequently — always take a fresh snapshot before asserting values
  • Screenshot click: Clicking the thumbnail opens a full-screen overlay, not a new page
  • BUSY vs Online vs Error: "BUSY" means running a job; "Online" means connected; "Error" is a distinct status (red badge) — an agent can be Online but not Busy (idle)
  • Disabled buttons: Run Job is disabled for offline agents; agent buttons in modal are disabled for offline agents
  • Snapshot dismisses overlay: Taking a snapshot may dismiss the screenshot viewer overlay — use screenshot tool to verify it
  • Display name vs hostname: Agents may show a display_name (user-friendly) while the hostname is the internal identifier. Copy always copies the hostname
  • SHARED badge vs share count: SHARED badge appears on agents you don't own; share count badge appears on agents you own that are shared with other accounts
  • Heartbeat threshold: 5 minutes without heartbeat = offline, regardless of stored status field
  • Metric color thresholds: CPU/Load: 50%=amber, 80%=red. Mem/Disk: 70%=amber, 85%=red. Swap: 30%=amber, 60%=red
  • No Remove agent button: Remove agent functionality is not visible on current agent rows (manage via Settings > Agents tab)
  • Count format is conditional: Header shows "N agents · N online" by default. The "· N error" part is only appended when at least one agent has error status — don't assert 3 parts unconditionally
  • Effort default is Medium: The Run Workflow modal defaults effort to Medium (not High) — Medium gets the orange highlight on open
  • Modal adapts to fleet state: With 0 agents: no agent grid, no "All N agents" button, no Entry Path dropdown — only Auto pick + "No agents with {role} role" text shown. The {role} text is dynamic per selected workflow (ops/se/qa/sd/pm)
  • Entry Path hidden when no agents: The ENTRY PATH dropdown only renders when agents are registered — don't assert it on empty fleets